package com.dmw.service;

import com.dmw.entity.DmLinkUser;
import com.dmw.entity.DmUser;
import com.dmw.vo.placeOrderVO.TicketBuyerListOfUserIdVO;
import com.dmw.vo.userBuyTicketsVO.AddBuyTicketsVo;
import com.dmw.vo.userInfoPageVO.ModifyUserInfoVo;
import com.dmw.vo.userInfoPageVO.ReturnUserInfoTokenVO;
import com.dmw.vo.userLoginVO.PasswordLoginVO;

import java.util.List;
import java.util.Map;

public interface DmUserService {


    /**
     * 密码登录接口
     * from 用户登录页面API 1
     * @param map
     * @return
     */
    List<PasswordLoginVO> login(Map<String, Object> map) throws Exception ;


    /**
     * 验证手机号是否可用接口
     * @param phone
     * @return
     */
    int checkEmail(String phone) throws  Exception;

    /**
     * 使用邮箱/手机号注册接口
     * @param map
     * @return
     */
    String register(Map<String, Object> map) throws  Exception;

    /**
     * 根据用户token返回用户信息
     * from 个人信息页面接口 1
     * @param userId
     * @return
     */
    List<ReturnUserInfoTokenVO> queryUserInfoByToken(Long userId) throws Exception;

    /**
     * 修改用户信息
     * from 个人信息页面接口 2
     * @param map
     * @return
     */
    void modifyUserInfo(Map<String, Object> map) throws Exception;

    /**
     * 根据当前用户/用户Id返回当前用户常用购票人列表
     * from 下单页接口 1
     * from 常用购票人页面 1
     * @param userId
     * @return
     */
    List<TicketBuyerListOfUserIdVO> queryLinkUser(Integer userId) throws Exception;

    /**
     * 添加常用购票人
     * from 常用购票人页面 2
     * @param user
     */
    void addLinkUser(DmLinkUser user) throws Exception;

    /**
     * 验证购票人是否已经存在
     * from 常用购票人页面 3
     * @param map
     * @return
     */
    int queryLinkUserByIdCard(Map<String, Object> map) throws Exception;

    /**
     *  删除联系人
     *  from 常用购票人页面 4
     * @param linkId
     */
    void deleteLinkUserById(Long linkId) throws Exception;
}
